/********************************************************************************
显示错题、错题排行、笔记、大家的笔记、收藏、收藏排行、查找的列表页显示
********************************************************************************/
function TestListData(type, curPage, keyWord, showTestCount,time) {
	var _keyWord = keyWord;
	var _testCount = 0;
    var _showCount = showTestCount;
    var _time = time;
	var _userInfo = [];
	var _listJsonData = _init(type);
	var _arrAllTest = _createArrAllTest(_listJsonData,type);
    /********************************************************************************
	函数名：_init
	功能：初始化试题数据
	输入参数:type 标识是错题、收藏、查找试题的变量
	返回值：jsonAllTest 试题数据
	创建信息：韦友爱（2014-08-20）
	修改记录：黎萍（2015-05-12）增加对执业护士易混易错试题数据的获取控制
	审查人：无
	*******************************************************************************/
	function _init(type) {
		var appID = G_Cookie.getAppID();
        if(!appID){
            G_Prg.throw('程序运行错误，TestListData._init : appID = "'+appID+'",获取数据出现异常');
        }
		var appEName = G_Cookie.getAppEName();
        if(!appEName){
            G_Prg.throw('程序运行错误，TestListData._init : appEName = "'+appEName+'",获取数据出现异常');
        }
        var userID = G_Cookie.getUserID();
		if (!userID) {
			G_Prg.throw('程序运行错误，TestListData._init : userID = "' + userID + '",获取数据出现异常');
		}
        var userName = G_Cookie.getUserName();
		if (!userName) {
			G_Prg.throw('程序运行错误，TestListData._init : userName = "' + userName + '",获取数据出现异常');
		}
		var jsonAllTest = '';
		switch (type) {
		    case 'userError':
			    jsonAllTest = _getErrorTestJson(appID, appEName, curPage, userName, userID); //获取用户做错的试题
			    break;
            case 'errorRank':
			    jsonAllTest = _getErrorRankJson(appID, appEName, curPage, userName, userID); //获取用户做错的试题
			    break;
		    case 'findTest':
			    jsonAllTest = _getSearchExamJson(appEName, _keyWord, curPage, userName, userID); //获取有用户笔记的试题
			    break;
		    case 'userFav':
			    jsonAllTest = _getFavTestJson(appID, appEName, curPage, userName, userID); //获取用户收藏的试题数据
			    break;
            case 'favRank':
			    jsonAllTest = _getFavRankJson(appID, appEName, curPage, userName, userID); //获取用户收藏的试题数据
			    break;
            case 'userNote':
			    jsonAllTest = _getNoteTestJson(appID, appEName, curPage, userName, userID); //获取用户笔记的试题数据
			    break;
           case 'noteRank':
			    jsonAllTest = _getNoteRank(appID, appEName, curPage, userName, userID); //获取用户笔记的试题数据
			    break;
				
		}
		return jsonAllTest;
	}
    /********************************************************************************
	函数名：_getSearchExamJson
	功能：获取被查找的试题数据
	输入参数:appEName 软件英文名称;curPage 当前页码
	返回值：jsonData 查找到的试题数据
	创建信息：黎萍（2014-08-7）
	修改记录：何海(2015-05-20)处理查找试题的搜索字符
	审查人：无
	*******************************************************************************/
	function _getSearchExamJson(appEName, keyWord, curPage, userName, userID) {
		var searchDataTest = '';
		var searchDataInfo = '';
		var URL = '/api/searchTest/getTestByTestKeyApi';
        var params={
            appEName:appEName,
            keyWord:keyWord,
            curPage:curPage-1,
            userID:userID,
            userName:userName,
            guid:G_Cookie.getGuid()
        };
		var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
			if (!json) {
				G_Prg.throw('程序运行错误，TestListData._getSearchExamJson请求服务器无返回');
			}
			var jsonData = JSON.parse(json);
			if (jsonData.status === 200) {
				//接收数据
				var data = jsonData.data;
				_count = data.count;
				searchDataTest = data.test;
				if (searchDataTest.StyleItems.length === 0) {
					return;
				}
				G_Cookie.setKeyHistory(userID, appEName, keyWord, _count);
				searchDataInfo = data.info;
				_testCount = data.count; //总题数
			} else if (jsonData.status === 201) { //搜索不到题目
				return;
			} else if (jsonData.status === 202) { //部分题目获取失败
				G_Prg.throw('程序运行错误，TestListData._getSearchExamJson,部分试题获取失败');
			} else if (jsonData.status === 203) { //用户未购买该科目
				G_Prg.confirm('该功能充值后才能使用！', function () {
                    var isiphone=G_Prg.getCookie('CLIENTTYPE');
                    if(isiphone&&isiphone.toString().toLowerCase()==='iphone'){
                        window.location="ios://iOSiap";
                    }else{
					    window.location.href = 'selectPrice.html?fromUrl=findTest.html';
                    }
				});
				return;
			} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','查找试题',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getSearchExamJson,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','查找试题',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getSearchExamJson,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','查找试题',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData. _getSearchExamJson，不能处理 status = "' + jsonData.status + '"！');
            }
		} //end _success
        G_AjaxApi.post(URL, params, false, _success);
		// G_SetTestInfo.replaceImgURL(searchDataTest); //设置图片路径
		return searchDataTest;
	}
    /********************************************************************************
	函数名：_getErrorTestJson
	功能：获取错题重做的试题数据
	输入参数:appID 软件ID, appEName 软件英文名, curPage 当前页码
	返回值：errorTestJson 错题重做的试题数据
	创建信息：韦友爱（2014-08-20）
	修改记录：无
	审查人：无
	*******************************************************************************/
    function _getErrorTestJson(appID, appEName, curPage, userName, userID) {
    	var errorTestJson = {};
    	var arrUserTest = ''; //存储用户收藏、用户笔记的数组
    	var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
    		var jsonData = JSON.parse(json);
    		if (jsonData.status === 200) {
    			//接收数据
    			errorTestJson = jsonData.data.test;
    			arrUserTest = jsonData.data.info;
    			_testCount = jsonData.data.count; //总题数
    		} else if (jsonData.status === 201) {
    			errorTestJson = '';
    			arrUserTest = '';
    			_testCount = 0; //总题数
    		} else if (jsonData.status === 202) { //部分试题查询不到
    			errorTestJson = jsonData.data.test;
    			/*if (errorTestJson.StyleItems.length === 0) {
					return;
    				//G_Prg.throw('程序运行错误，TestListData._getErrorTestJson:status= ' + jsonData.status + ' 没有查找到做错的试题数据！');
    			}*/
    			G_Prg.alert('由于考试大纲变化，题库更新，部分超纲试题不再显示，如您发现小部分题目减少，属正常现象。');
    			arrUserTest = jsonData.data.info;
    			_testCount = jsonData.data.count; //总题数
    		} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','错题重做',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getErrorTestJson,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','错题重做',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getErrorTestJson,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','错题重做',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData. _getErrorTestJson：不能处理 status = "' + jsonData.status + '"！');
            }
    	}
    	var URL = '/api/exam/getErrorTest';
        var params={
            appID:appID,
            userID:userID,
            appEName:appEName,
            curPage:curPage-1,
            userName:userName,
            guid:G_Cookie.getGuid(),
            cptID:-1,
            eachPageNum:_showCount
        };
    	G_AjaxApi.post(URL, params, false, _success);
        if(errorTestJson){
            errorTestJson = G_SetTestInfo.setFavAndNoteTest(errorTestJson, arrUserTest); //添加用户笔记、收藏标记
    	    errorTestJson = G_SetTestInfo.replaceImgURL(errorTestJson); //设置图片路径   
        }
    	return errorTestJson;
    }
    /********************************************************************************
	函数名：_getErrorRankJson
	功能：获取错题排行榜的试题数据
	输入参数:appID 软件ID, appEName 软件英文名, curPage 当前页码，userName 用户名，userID 用户ID
	返回值：errorRankJson 错题排行榜的试题数据
	创建信息：韦友爱（2014-09-16）
	修改记录：无
	审查人：无
	*******************************************************************************/
    function _getErrorRankJson(appID, appEName, curPage, userName, userID) {
    	var errorRankJson = '';
    	var arrRankTest = ''; //存储用户收藏、用户笔记的数组
    	var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
    		var jsonData = JSON.parse(json);
    		if (jsonData.status === 200) {
    			//接收数据
    			errorRankJson = jsonData.data.test;
    			arrRankTest = jsonData.data.info;
    			_testCount = jsonData.data.count; //总题数
    		} else if (jsonData.status === 201) {
                _testCount = 0; 
    		} else if (jsonData.status === 202) { //部分试题查询不到
    			errorRankJson = jsonData.data.test;
    			/*if (errorRankJson.StyleItems.length === 0) {
    				return;
					//G_Prg.throw('程序运行错误，TestListData. _getErrorRankJson: status= ' + jsonData.status + ' 没有查找到错题排行榜的试题数据！');
    			}*/
    			G_Prg.alert('由于考试大纲变化，题库更新，部分超纲试题不再显示，如您发现小部分题目减少，属正常现象。');
    			arrRankTest = jsonData.data.info;
    			_testCount = jsonData.data.count; //总题数
            } else if (jsonData.status === 203) {
    		    G_Prg.confirm('该功能充值后才能使用！', function(){
                    var isiphone=G_Prg.getCookie('CLIENTTYPE');
                    if(isiphone&&isiphone.toString().toLowerCase()==='iphone'){
                        window.location="ios://iOSiap";
                    }else{
                        window.location.href = 'selectPrice.html?fromUrl=testList.html&type=userError';
                    }
                });
                return;
    		} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','错题排行榜',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getErrorRankJson,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','错题排行榜',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getErrorRankJson,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','错题排行榜',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData. _getErrorRankJson：不能处理 status = "' + jsonData.status + '"！');
            }
    	}
    	var URL = '/api/testRank/getErrorRankTest';
        var params={
            appID:appID,
            userID:userID,
            appEName:appEName,
            curPage:curPage-1,
            userName:userName,
            guid:G_Cookie.getGuid(),
            eachPageNum:_showCount
        };
    	G_AjaxApi.post(URL, params, false, _success);
		_userInfo = arrRankTest;
        if(errorRankJson){
            errorRankJson = G_SetTestInfo.replaceImgURL(errorRankJson); //设置图片路径
        }     
    	return errorRankJson;
    }
    /********************************************************************************
	函数名：_getFavTestJson
	功能：获取用户收藏的试题数据
	输入参数:appID 软件ID,appEName 软件英文名称,curPage 当前页码          
	返回值：favTestJson 被收藏的试题数据
	创建信息：韦友爱（2014-08-20）
	审查人：无
	*******************************************************************************/
	function _getFavTestJson(appID, appEName, curPage, userName, userID) {
		var favTestJson = '';
		var arrUserTest = ''; //存储用户收藏、用户笔记的数组
		var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
			var jsonData = JSON.parse(json);
			if (jsonData.status === 200) {
				//接收数据
				favTestJson = jsonData.data.test;
				arrUserTest = jsonData.data.info;
				_examHistoryID = jsonData.data.examHistoryID;
				_testCount = jsonData.data.count; //总题数
			} else if (jsonData.status === 201) {
//				G_Prg.throw('无收藏记录！');
                _testCount = 0;
			} else if (jsonData.status === 202) { //部分试题查询不到
				favTestJson = jsonData.data.test;
				/*if (favTestJson.StyleItems.length === 0) {
					G_Prg.throw('程序运行错误，TestListData._getFavTestJson:status =' + jsonData.status + ' 没有查询到收藏试题数据！');
				}*/
				G_Prg.alert('由于考试大纲变化，题库更新，部分超纲试题不再显示，如您发现小部分题目减少，属正常现象。');
				arrUserTest = jsonData.data.info;
				_testCount = jsonData.data.count; //总题数
			} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','我的收藏',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getFavTestJson,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','我的收藏',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getFavTestJson,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','我的收藏',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData. _getFavTestJson：不能处理 status = "' + jsonData.status + '"！');
            }
		}
		var URL = '/api/exam/getUserFav';
        var params={
            appID:appID,
            userID:userID,
            appEName:appEName,
            curPage:curPage-1,
            userName:userName,
            guid:G_Cookie.getGuid(),
            cptID:-1,
            eachPageNum:_showCount
        };
		G_AjaxApi.post(URL, params, false, _success);
        if(favTestJson){
            favTestJson = G_SetTestInfo.setFavAndNoteTest(favTestJson, arrUserTest); //添加用户笔记、收藏标记
		    favTestJson = G_SetTestInfo.replaceImgURL(favTestJson); //设置图片路径
        }
		
		return favTestJson;
	}
    /********************************************************************************
	函数名：_getFavRankJson
	功能：获取收藏排行的试题数据
	输入参数:appID 软件ID,appEName 软件英文名称,curPage 当前页码，userName 用户名，userID 用户ID        
	返回值：favRankJson 收藏排行的试题数据
	创建信息：韦友爱（2014-08-20）
	审查人：无
	*******************************************************************************/
	function _getFavRankJson(appID, appEName, curPage, userName, userID) {
		var favRankJson = '';
		var arrUserTest = ''; //存储用户收藏、用户笔记的数组
		var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
			var jsonData = JSON.parse(json);
			if (jsonData.status === 200) {
				//接收数据
				favRankJson = jsonData.data.test;
				arrUserTest = jsonData.data.info;
				_testCount = jsonData.data.count; //总题数
			} else if (jsonData.status === 201) {
//				G_Prg.throw('无收藏排行榜数据！');
                _testCount = 0;
			} else if (jsonData.status === 202) { //部分试题查询不到
				favRankJson = jsonData.data.test;
				/*if (favRankJson.StyleItems.length === 0) {
					G_Prg.throw('程序运行错误，TestListData._getFavRankJson:status =' + jsonData.status + ' 没有查询到收藏排行榜试题数据！');
				}*/
				G_Prg.alert('由于考试大纲变化，题库更新，部分超纲试题不再显示，如您发现小部分题目减少，属正常现象。');
				arrUserTest = jsonData.data.info;
				_testCount = jsonData.data.count; //总题数
            } else if (jsonData.status === 203) {
    		    G_Prg.confirm('该功能充值后才能使用！', function(){
                    var isiphone=G_Prg.getCookie('CLIENTTYPE');
                    if(isiphone&&isiphone.toString().toLowerCase()==='iphone'){
                        window.location="ios://iOSiap";
                    }else{
                        window.location.href = 'selectPrice.html?fromUrl=testList.html&type=userFav';
                    }
                });
                return;
			} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','收藏排行榜',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getFavRankJson,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','收藏排行榜',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getFavRankJson,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','收藏排行榜',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData. _getFavRankJson：不能处理 status = "' + jsonData.status + '"！');
            }
		}
		var URL = '/api/testRank/getFavRankTest';
        var params={
            appID:appID,
            userID:userID,
            appEName:appEName,
            curPage:curPage-1,
            userName:userName,
            guid:G_Cookie.getGuid(),
            cptID:-1,
            eachPageNum:_showCount
        };
		G_AjaxApi.post(URL, params, false, _success);
		_userInfo = arrUserTest;
        if(favRankJson){
            favRankJson = G_SetTestInfo.replaceImgURL(favRankJson); //设置图片路径
        }
		return favRankJson;
	}
    /********************************************************************************
	函数名：_getNoteTestJson
	功能：获取用户笔记的试题数据
	输入参数:appID 软件ID, appEName 软件英文名, curPage 当前页码
	返回值：noteTestJson 用户笔记的试题数据
	创建信息：韦友爱（2014-08-20）
	修改记录：无
	审查人：无
	*******************************************************************************/
    function _getNoteTestJson(appID, appEName, curPage, userName, userID) {
    	var noteTestJson = '';
		var arrUserTest =  '';	//存储用户收藏、用户笔记的数组
 		var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
 			var jsonData = JSON.parse(json);
 			if (jsonData.status === 200) {
 				//接收数据
 				noteTestJson = jsonData.data.test;
				arrUserTest = jsonData.data.info;
                _testCount = jsonData.data.count; //总题数
 			}else if (jsonData.status === 201) {
//				G_Prg.throw('无笔记记录！');
                _testCount = 0;
 			} else if (jsonData.status === 202) { //部分试题查询不到
 				noteTestJson = jsonData.data.test;
 				/*if (noteTestJson.StyleItems.length===0) {
 					G_Prg.throw('程序运行错误，TestListData. _getNoteTestJson: status= '+jsonData.status+' 未查询到笔记试题数据！');
 				}*/
                G_Prg.alert('由于考试大纲变化，题库更新，部分超纲试题不再显示，如您发现小部分题目减少，属正常现象。');
 				arrUserTest = jsonData.data.info;
                _testCount = jsonData.data.count; //总题数
 			} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','我的笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getNoteTestJson,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','我的笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getNoteTestJson,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','我的笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData. _getNoteTestJson：不能处理 status = "' + jsonData.status + '"！');
            }
 		}
 		var URL = '/api/exam/getUserNoteTest';
        var params={
            appID:appID,
            userID:userID,
            appEName:appEName,
            curPage:curPage-1,
            userName:userName,
            guid:G_Cookie.getGuid(),
            cptID:-1,
            eachPageNum:_showCount
        };
 		G_AjaxApi.post(URL, params, false, _success);
        if(noteTestJson){
            noteTestJson = G_SetTestInfo.setFavAndNoteTest(noteTestJson,arrUserTest);	//添加用户笔记、收藏标记
		    noteTestJson = G_SetTestInfo.replaceImgURL(noteTestJson);	//设置图片路径
        }
		
 		return noteTestJson;
    }
    /********************************************************************************
	函数名：_getNoteRank
	功能：获取用户笔记的试题数据
	输入参数:appID 软件ID, appEName 软件英文名, curPage 当前页码
	返回值：noteTestJson 用户笔记的试题数据
	创建信息：韦友爱（2014-09-24）
	修改记录：无
	审查人：无
	*******************************************************************************/
    function _getNoteRank(appID, appEName, curPage, userName, userID){
        var noteRankJson = '';
		var arrUserTest = '';
 		var _success = function (json) {
            G_Prg.$('loadingDiv').style.display = 'block'; //显示加载圈 
 			var jsonData = JSON.parse(json);
 			if (jsonData.status === 200) {
 				//接收数据
 				noteRankJson = jsonData.data.test;
				arrUserTest = jsonData.data.info;
                _time=jsonData.data.latestTime;
                _testCount = jsonData.data.count; //总题数
 			}else if (jsonData.status === 201) {
                _testCount = 0;
 			} else if (jsonData.status === 202) { //部分试题查询不到
 				noteRankJson = jsonData.data.test;
 				/*if (noteRankJson.StyleItems.length===0) {
 					G_Prg.throw('程序运行错误，TestListData._getNoteRank:status= '+jsonData.status+' 未查询到笔记试题数据！');
 				}*/
                G_Prg.alert('由于考试大纲变化，题库更新，部分超纲试题不再显示，如您发现小部分题目减少，属正常现象。');
 				arrUserTest = jsonData.data.info;
                _time=jsonData.data.latestTime;
                _testCount = jsonData.data.count; //总题数
 			} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','大家的笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getNoteRank,数据库获取数据异常');
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','大家的笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData. _getNoteRank,参数错误');
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','大家的笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData._getNoteRank：不能处理 status = "' + jsonData.status + '"！');
            }
 		}
 		var URL = '/api/latestNotes/getLatestNotes';
        var params={
            appID:appID,
            appEName:appEName,
            curPage:curPage-1,
            userName:userName,
            userID:G_Cookie.getUserID(),
            guid:G_Cookie.getGuid(),
            eachPageNum:_showCount,
            latestTime:_time
        };
 		G_AjaxApi.post(URL, params, false, _success);
		_userInfo = arrUserTest;
        if(noteRankJson){
		    noteRankJson = G_SetTestInfo.replaceImgURL(noteRankJson);	//设置图片路径
        }
 		return noteRankJson;
    }
    /********************************************************************************
    函数名：createArrAllTest
    功能：初始化_arrAllTest数组
    输入参数: 题目json数据,type 标识是错题、收藏、查找试题，易混易错的变量
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
    function _createArrAllTest(data,type) {
        if(!data){
             return null;
        }
    	var index = 0; //数组Numbers的索引
    	var arrAllTest = [];
    	var styleItems = data.StyleItems;
    	for (var i = 0; i < styleItems.length; i++) {
    		var testType = styleItems[i].Type; //题型
    		var testItems = styleItems[i].TestItems;
			
    		for (var j = 0; j < testItems.length; j++) {
    			/*
    			判断试题所属题型，生成数组的值
    			 */
    			if (testType === 'A3TEST') {
    				var a3items = testItems[j].A3TestItems;
    				for (var k = 0; k < a3items.length; k++) {
    					arrAllTest[index] = a3items[k];
                        arrAllTest[index].Title=testItems[j].FrontTitle+'<br>'+arrAllTest[index].Title;
    					arrAllTest[index].ChildTableID = a3items[k].A3TestItemID;
    					arrAllTest[index].ChildTableName = styleItems[i].Type;
    					arrAllTest[index].StyleID = styleItems[i].StyleID;
                        var explain =  a3items[k].Explain;//解题思路
                        if(!explain || explain === '无'){
                            explain = testItems[j].Explain;
                        }
		                arrAllTest[index].Explain = explain === '' ? '无' : explain; //没有解析，设置默认值
                        //arrAllTest[index].Explain = a3items[k].Explain ? a3items[k].Explain:testItems[j].Explain;
    					var answerContent='';
                        var answer = arrAllTest[index].Answer;
                        var selectedItems = a3items[k].SelectedItems;
                        for(var n = 0; n < answer.length; n++){
    					    for (var l = 0; l < selectedItems.length; l++) {
    						    if (answer[n] === selectedItems[l].ItemName) {
    							   if(answerContent){
                                        answerContent = answerContent + '；'+selectedItems[l].Content;
                                    }else{
                                        answerContent=selectedItems[l].Content;
                                    } 
    							    break;
    						    }
    					    }
                        }
                        if(answerContent){
                            arrAllTest[index].Answer=answerContent;
                        }
                        arrAllTest[index].Parameter=testItems[j].AllTestID+''+a3items[k].A3TestItemID;
//                        arrAllTest[index].TestItemID=
    					index++;
    				}
    			} else if (testType === 'BTEST') {
    				var bitems = testItems[j].BTestItems;
    				for (var k = 0; k < bitems.length; k++) {
    					arrAllTest[index] = bitems[k];
    					arrAllTest[index].ChildTableID = bitems[k].BTestItemID;
    					arrAllTest[index].ChildTableName = styleItems[i].Type;
    					arrAllTest[index].StyleID = styleItems[i].StyleID;
						var explain =  bitems[k].Explain;//解题思路
                        if(!explain || explain === '无'){
                            explain = testItems[j].Explain;
                        }
		                arrAllTest[index].Explain = explain === '' ? '无' : explain; //没有解析，设置默认值
                        var answer = arrAllTest[index].Answer;
                        var selectedItems = testItems[j].SelectedItems;
                        var answerContent='';
                        for(var n = 0; n < answer.length; n++){
    					    for (var l = 0; l < selectedItems.length; l++) {
    						    if (answer[n] === selectedItems[l].ItemName) {
                                    if(answerContent){
                                        answerContent = answerContent + '；'+selectedItems[l].Content;
                                    }else{
                                        answerContent=selectedItems[l].Content;
                                    } 
    							    break;
    						    }
    					    }
                        }
                        if(answerContent){
                            arrAllTest[index].Answer=answerContent;
                        }
                        arrAllTest[index].Parameter=testItems[j].AllTestID+''+bitems[k].BTestItemID;
    					index++;
    				}
    			} else if (testType === 'ATEST' || testType === 'XTEST') {
    				arrAllTest[index] = styleItems[i].TestItems[j];
    				arrAllTest[index].ChildTableID = -1;
    				arrAllTest[index].ChildTableName = styleItems[i].Type;
    				arrAllTest[index].StyleID = styleItems[i].StyleID;
    				var answer = arrAllTest[index].Answer;
                    var answerContent='';
    				var selectedItems = testItems[j].SelectedItems;
                    for(var n = 0; n < answer.length; n++){
    					for (var l = 0; l < selectedItems.length; l++) {
    						if (answer[n] === selectedItems[l].ItemName) {
                                if(answerContent){
                                    answerContent = answerContent + '；'+selectedItems[l].Content;
                                }else{
                                    answerContent=selectedItems[l].Content;
                                } 
    							break;
    						}
    					}
                    }
                    if(answerContent){
                        arrAllTest[index].Answer=answerContent;
                    }
                    arrAllTest[index].Parameter=testItems[j].AllTestID;
    				index++;
    			} else if (testType === 'JDTEST' || testType === 'PDTEST' || testType === 'TKTEST') {
    				arrAllTest[index] = styleItems[i].TestItems[j];
    				arrAllTest[index].ChildTableID = -1;
    				arrAllTest[index].ChildTableName = styleItems[i].Type;
    				arrAllTest[index].StyleID = styleItems[i].StyleID;
    				if (testType === 'TKTEST') {
    					arrAllTest[index].Answer = G_SetTestInfo.splitTKTestAnswer(arrAllTest[index].Answer); //将填空题的答案进行格式化
    				}
                    arrAllTest[index].Parameter=testItems[j].AllTestID;
    				index++;
    			} else {
    				G_Prg.throw('程序运行错误，TestListData._setArrAllTest：testType = "' + testType + '"，无法解析题型索引');
    			}
    		} //end for testItems
    	} //end for styleItem
    	return arrAllTest;
    }
    /********************************************************************************
    函数名：_updateNote
    功能：连接到setUserNote接口，修改当前试题的笔记内容
    输入参数: index 当前试题的数组下标
              noteContent 笔记内容
    返回值：无
    创建信息：韦友爱（2014-07-06）
    修改记录：韦友爱（2014-07-16）添加笔记内容长度控制
             韦友爱（2014-07-18）异常抛出后刷新当前页面
			 黎萍（2016-05-26）添加：修改、删除笔记的同时也对本地缓存的数据进行操作
    审查人：欧聪（2014-07-08）
     *******************************************************************************/
    function _updateNote(index, noteContent) {
    	var cptID = _arrAllTest[index].CptID;
    	var allTestID = _arrAllTest[index].AllTestID;
    	var childTableID = _arrAllTest[index].ChildTableID;
    	var childTableName = _arrAllTest[index].ChildTableName;
    	var srcID = _arrAllTest[index].SrcID;
    	var sbjID = _arrAllTest[index].SbjID;
    	var styleID = _arrAllTest[index].StyleID;
        if(noteContent&&noteContent.length>100){
            noteContent=noteContent.substr(0,100);
        }
    	var _success = function (json) {
    		var jsonData = JSON.parse(json);
    		if (jsonData.status === 200) {
                if(noteContent){
                    G_Prg.popMsg('保存成功');
                }else{
                    G_Prg.popMsg('删除成功');
                }
				if(typeof(G_UserInfoCache)!=='undefined'){
					G_UserInfoCache.updateUserNoteCache(cptID,allTestID,childTableID,noteContent);
				}
                G_Prg.$('list').innerHTML = '';
    		} else if(jsonData.status === 300){
				G_maiDian.setBugRecordInfos('程序错误','修改笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData._updateNote,数据库获取数据异常', function () {
    				window.location.href = 'userNotes.html?page=' + _curPage;
    			});
			} else if(jsonData.status >= 400 && jsonData.status < 500){
				G_maiDian.setBugRecordInfos('业务逻辑错误','修改笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('程序运行错误，TestListData._updateNote,数据库获取数据异常', function () {
    				window.location.href = 'userNotes.html?page=' + _curPage;
    			});
			} else{
				G_maiDian.setBugRecordInfos('其它程序错误','修改笔记',jsonData.status+':'+jsonData.msg);
				G_Prg.throw('抱歉，TestListData._updateNote不能处理 status = "' + jsonData.status + '"！', function () {
    				window.location.href = 'userNotes.html?page=' + _curPage;
    			});
            }//end _success
    	}
    	var params = {
    		appID : G_Cookie.getAppID(),
    		userID : G_Cookie.getUserID(),
    		cptID : cptID,
    		allTestID : allTestID,
    		childTableID : childTableID,
    		childTableName : childTableName,
    		srcID : srcID,
    		sbjID : sbjID,
    		styleID : styleID,
    		noteContent : noteContent,
    		userName : G_Cookie.getUserName(),
    		guid : G_Cookie.getGuid()
    	}; //end params
    	G_AjaxApi.post('/api/exam/addUserNote', params, false, _success);
	}
    /********************************************************************************
    函数名：_getAllTest
    功能：获取试题数组
    输入参数: 无
    返回值：无
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
    this._getAllTest = function () {
		return _arrAllTest;
	}
    /********************************************************************************
    函数名：_getTestCount
    功能：获取试题总数
    输入参数: 无
    返回值：无
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
	this._getTestCount = function () {
		return _testCount;
	}
    /********************************************************************************
    函数名：_getTestCount
    功能：获取试题总数
    输入参数: 无
    返回值：无
    创建信息：韦友爱（2014-08-20）
    修改记录：无
    审查人：无
     *******************************************************************************/
	this._setUserNote = function (index, noteContent) {
         _updateNote(index, noteContent);
    }
    this.getTime=function(){
        return _time;
    }
	this.getUserInfo = function(){
		return _userInfo;
	}
}
/********************************************************************************
函数名：iOSreturn
功能：苹果商店功能
输入参数: 无
返回值：无
创建信息：罗天敏（2014-10-27）
修改记录：无
审查人：无
*******************************************************************************/
function iOSreturn(){
    var username=G_Cookie.getUserID();
    var softname=G_Cookie.getAppEName();

    var answer=username+"/"+softname;
    return answer;
}